package com.zhku.zhny.admin.service;
import java.util.List;

import com.zhku.zhny.admin.exception.InsertException;
import com.zhku.zhny.admin.exception.RemoveException;
import com.zhku.zhny.admin.exception.SearchException;
import com.zhku.zhny.domain.Admin;
import com.zhku.zhny.domain.Event;
import com.zhku.zhny.domain.EventPageBean;
import com.zhku.zhny.domain.Group;
import com.zhku.zhny.domain.GroupPageBean;
import com.zhku.zhny.domain.Honor;
import com.zhku.zhny.domain.HonorPageBean;
import com.zhku.zhny.domain.Introduction;
import com.zhku.zhny.domain.SignUp;
import com.zhku.zhny.domain.SignUpPageBean;

public interface AdminService {
	/**
	 * 添加小组信息
	 * @param group
	 * @return
	 */
	int addGroupInfo(Group group) throws InsertException ;
	/**
	 * 分页查询小组信息
	 * @param groupName
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	GroupPageBean findGroupsByName(String groupName, String currentPage, int pageSize) throws SearchException ;
	/**
	 * 根据ID删除小组信息，另需将小组图片也删除
	 * @param groupId
	 * @return
	 */
	boolean removeGroupById(String groupId) throws RemoveException ;
	/**
	 * 找出所有小组信息
	 * @return
	 */
	List<Group> findAllGroups() throws SearchException ;
	/**
	 * 找出所有组别名
	 * @return
	 */
	List<String> findGroupsName() throws SearchException ;
	/**
	 * 删除多个组别信息，另需将小组图片也删除
	 * @param honorId
	 * @return
	 */
	boolean removeGroupByIds(String[] ids) throws RemoveException;
//-------------------------------------------------------------------------------
	/**
	 * 后台添加报名信息
	 * @param signUpBean
	 * @return
	 */
	int addSignUpInfo(SignUp signUpBean) throws InsertException ;
	/**
	 * 分页查询报名信息
	 * @param name
	 * @param phone
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	SignUpPageBean findByNameOrPhone(String name, String phone, String currentPage, int pageSize) throws SearchException ;
	/**
	 * 删除报名信息
	 * @param id
	 * @return
	 */
	boolean removeSignUpById(String id) throws RemoveException ;
	/**
	 * 查询所有报名信息
	 * @return
	 */
	List<SignUp> findAllSignUp() throws SearchException ;
	/**
	 * 删除多个报名信息
	 * @param ids
	 * @return
	 */
	boolean removeSignUpByIds(String[] ids) throws RemoveException ;
//----------------------------------------------------------------
	/**
	 * 添加荣誉信息
	 * @param honor
	 * @return
	 */
	int addHonorInfo(Honor honor) throws InsertException ;
	/**
	 * 分页查询荣誉信息
	 * @param name
	 * @param date
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	HonorPageBean findHonorByNameOrDate(String name, String date, String currentPage, int pageSize) throws SearchException ;
	/**
	 * 删除单个荣誉信息
	 * @param honorId
	 * @return
	 */
	boolean removeHonorById(String honorId) throws RemoveException ;
	/**
	 * 删除多个荣誉信息
	 * @param honorId
	 * @return
	 */
	boolean removeHonorByIds(String[] ids) throws RemoveException;
	/**
	 * 查询所有荣誉信息
	 * @return
	 */
	List<Honor> findAllHonor() throws SearchException ;
	/**
	 * 根据id数组查询符合信息列表
	 * @param ids
	 * @return
	 */
	List<SignUp> findSignUpsByIds(String[] ids) throws SearchException ;
	/**
	 * 根据id查询报名信息
	 * @param string
	 * @return
	 */
	SignUp findSignUpsById(String string) throws SearchException ;
	/**
	 * 登陆
	 * @param name
	 * @param password
	 * @return
	 */
	Admin login(String name, String password)throws SearchException ;
	/**
	 * 添加事记信息
	 * @param event
	 * @return
	 */
	int addEventInfo(Event event) throws InsertException;
	/**
	 * 添加团队介绍信息
	 * @param intro
	 * @return
	 * @throws InsertException
	 */
	int addIntroductionInfo(Introduction intro) throws InsertException;
	/**
	 * 查询所有团队介绍信息
	 * @return
	 */
	List<Introduction> findAllIntros() throws SearchException;
	/**
	 * 删除团队介绍信息，支持批量
	 * @param ids
	 * @return
	 */
	boolean removeIntroByIds(String[] ids) throws RemoveException;
	/**
	 * 查询所有事记信息
	 * @return
	 */
	List<Event> findAllEvent() throws SearchException;
	/**
	 * 删除事记信息，支持批量
	 * @param ids
	 * @return
	 */
	boolean removeEventByIds(String[] ids) throws RemoveException;
	/**
	 * 分页查询事记信息
	 * @param title
	 * @param date
	 * @param currentPage
	 * @param pageSize
	 * @return
	 * @throws SearchException
	 */
	EventPageBean findByTitleOrDate(String title, String date, String currentPage, int pageSize) throws SearchException;
	
}
